package com.avengers.common.bean;

import java.util.Arrays;
import java.util.List;

/**
 * 说明: -1:不支持 0:系统默认不可变更 1:自有选择
 *
 * @author zhangnan
 * @since 2021/8/4 11:25 上午
 **/
public enum AccountNotify {
    // 域名管理
    DOMAIN_EXPIRE("domain_expire", "domain", "域名过期提醒", 0, 1, -1),
    DOMAIN_RENEW("domain_renew", "domain", "域名续费结果通知", -1, 1, 1),
    DOMAIN_PUSH("domain_push", "domain", "域名PUSH通知", -1, 1, 1),
    DOMAIN_TRANSFER_OUT("domain_transfer_out", "domain", "域名转出结果通知", 1, 1, -1),
    DOMAIN_TRANSFER_BACK("domain_transfer_back", "domain", "域名转回通知", -1, 1, -1),
    DOMAIN_DELETED("domain_deleted", "domain", "域名审核失败删除通知", 1, 1, 1),
    TEMPLATE_AUDIT_RESULT("template_audit_result", "domain", "模板审核结果通知", 1, -1, 1),
    DOMAIN_PASSWORD("domain_password", "domain", "域名转移密码", 0, -1, -1),

    // 域名交易
    DOMAIN_BUY("domain_buy", "trade", "一口价交易通知", -1, 1, 1),
    DOMAIN_BUY_OFFLINE("domain_buy_offline", "trade", "一口价下架通知", 1, 1, -1),
    DOMAIN_PRE_RELEASE_AUDIT("domain_pre_release_audit", "trade", "预释放审核通知", -1, 1, 1),

    // 预订竞价
    AUCTION_BEHIND("auction_behind", "booking", "竞价落后提醒", 1, 1, 1),
    DOMAIN_RUSH_RESULT("domain_rush_result", "booking", "抢注结果提醒", 1, -1, -1),
    EVERYDAY_BIDDING("everyday_bidding", "booking", "每日竞价提醒", 1, 1, -1),
    BIDDING_RENEGE("bidding_renege", "booking", "竞价违约通知", -1, 0, 1),
    RESERVE_CANCEL("reserve_cancel", "booking", "预订取消提醒", 1, 1, 1),

    // 其他
    FEEDBACK_NOTIFY("feedback_notify", "other", "工单处理通知", -1, 1, 1),
    COUPON_PUBLISH("coupon_publish", "other", "优惠券发放通知", -1, 1, -1),
    CREDIT_GUESS("credit_guess", "other", "积分神预测结果通知", -1, 1, -1),
    DOMAIN_REPORT("domain_report", "other", "域名举报结果通知", 0, -1, 1);

    public String field;
    public String type;
    public String comment;
    public int email;
    public int sms;
    public int wx;

    AccountNotify(String field, String type, String comment, int email, int sms, int wx) {
        this.field = field;
        this.type = type;
        this.comment = comment;
        this.email = email;
        this.sms = sms;
        this.wx = wx;
    }

    public static List<AccountNotify> getAccountNotifyList() {
        return Arrays.asList(values());
    }
}